/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.tcr.main;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.tcr.entities.Client;
import com.tcr.main.R;
/**
 *
 * @author V.D
 * 
 * Activity permettant l'affichage de l'accueil.
 * Il regroupe les différents menus accessibles à l'utilisateur tel que:
 *  - Actualités: affichage des actualités des enseignes favorites de l'utilisateur
 *  - Notifications: work in progress
 *  - Favoris: Affichage des enseignes favorites de l'utilisateur en détail
 *  - Recherche: Rechercher des eneignes
 *  - Modifier Profil
 *  - Déconnexion
 */
public class Accueil extends Activity {

    private Client client;
    private LinearLayout actualites;
    private LinearLayout notifications;
    private LinearLayout favoris;
    private LinearLayout recherche;
    private LinearLayout modifProfil;
    private LinearLayout deconnexion;
    private TextView actualitesT;
    private TextView deconnexionT;
    private Intent intent;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.accueil);

        // On récupère les informations sur le cleint venant de se connecter
        client = (Client) getIntent().getExtras().get("User");

        // Récupération des différents Layout/TextView correspondant aux menus disponibles
        actualites = (LinearLayout) findViewById(R.accueil.actualites);
        notifications = (LinearLayout) findViewById(R.accueil.notifications);
        favoris = (LinearLayout) findViewById(R.accueil.favoris);
        recherche = (LinearLayout) findViewById(R.accueil.recherche);
        modifProfil = (LinearLayout) findViewById(R.accueil.modifier_profil);
        deconnexion = (LinearLayout) findViewById(R.accueil.deconnexion);
        actualitesT = (TextView) findViewById(R.accueil.actualitesT);
        deconnexionT = (TextView) findViewById(R.accueil.deconnexionT);

        // Evenement qui se lance si on choisie le menu d'Actualites
        // On vérifie que le client possède bien des favoris
        // Si il n'en possède pas, on le prévient et ne lance pas le menu
        // Sinon, on va sur l'activity Actualites
        actualites.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View arg0, MotionEvent arg1) {
                switch (arg1.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        if (client.getFavoris().size() <= 0) {

                            AlertDialog.Builder adb = new AlertDialog.Builder(Accueil.this);
                            //on attribut un titre à notre boite de dialogue
                            adb.setTitle("Aucun favoris");
                            //on insère un message à notre boite de dialogue
                            adb.setMessage("Vous n'avez aucun favoris");
                            //on indique que l'on veut le bouton ok à notre boite de dialogue
                            adb.setPositiveButton("Ok", null);
                            //on affiche la boite de dialogue
                            adb.show();
                        } else {
                            intent = new Intent(Accueil.this, Actualites.class);
                            intent.putExtra("User", client);
                            startActivity(intent);
                        }

                }

                return true;
            }
        });

        // Evenement qui se lance si on choisie le menu de notifications
        // Inactif pour le moment
        notifications.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View arg0, MotionEvent arg1) {
                switch (arg1.getAction()) {
                    case MotionEvent.ACTION_DOWN:

                        AlertDialog.Builder adb = new AlertDialog.Builder(Accueil.this);
                        //on attribut un titre à notre boite de dialogue
                        adb.setTitle("Work in progress");
                        //on insère un message à notre boite de dialogue
                        adb.setMessage("En développement");
                        //on indique que l'on veut le bouton ok à notre boite de dialogue
                        adb.setPositiveButton("Ok", null);
                        //on affiche la boite de dialogue
                        adb.show();

                }

                return true;
            }
        });

        // Evenement qui se lance si on choisie le menu ddes Favoris
        // On vérifie que le client possède bien des favoris
        // Si il n'en possède pas, on le prévient et ne lance pas le menu
        // Sinon, on va sur l'activity Favoris
        favoris.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View arg0, MotionEvent arg1) {
                switch (arg1.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        if (client.getFavoris().size() <= 0) {

                            AlertDialog.Builder adb = new AlertDialog.Builder(Accueil.this);
                            //on attribut un titre à notre boite de dialogue
                            adb.setTitle("Aucun favoris");
                            //on insère un message à notre boite de dialogue
                            adb.setMessage("Vous n'avez aucun favoris");
                            //on indique que l'on veut le bouton ok à notre boite de dialogue
                            adb.setPositiveButton("Ok", null);
                            //on affiche la boite de dialogue
                            adb.show();
                        } else {
                            intent = new Intent(Accueil.this, Favoris.class);
                            intent.putExtra("User", client);
                            startActivity(intent);
                        }

                }

                return true;
            }
        });

        // Evenement qui se lance si on choisie le menu de Recherche
        // On part sur l'activity RechercheEnseigne
        recherche.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View arg0, MotionEvent arg1) {
                switch (arg1.getAction()) {
                    case MotionEvent.ACTION_DOWN:

                        intent = new Intent(Accueil.this, RechercheEnseigne.class);
                        intent.putExtra("User", client);
                        startActivity(intent);

                }

                return true;
            }
        });

        // Evenement qui se lance si on choisie le menu dde Modification
        // On va sur l'activity ModifierProfil
        modifProfil.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View arg0, MotionEvent arg1) {
                switch (arg1.getAction()) {
                    case MotionEvent.ACTION_DOWN:

                        intent = new Intent(Accueil.this, ModifierProfil.class);
                        Accueil c = Accueil.this;
                        intent.putExtra("User", client);
                        startActivity(intent);

                }

                return true;
            }
        });

        // Evenement qui se lance si on choisie le menu de déconnexion
        // L'utilisateur est renvoyé sur la page de connexion
        deconnexion.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View arg0, MotionEvent arg1) {
                switch (arg1.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        startActivity(new Intent(Accueil.this, TheCityRater.class));

                }

                return true;
            }
        });
    }
}
